package com.haruhinav.mapper;

import com.haruhinav.entity.MusicServer;
import com.haruhinav.entity.PlayList;
import com.haruhinav.entity.UserPlaylist;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface MusicMapper {
//    所有音乐平台
    List<MusicServer> getAllMusicServer();

// 将用户还没有歌单的平台查询出来
List<MusicServer> findMusicServerByUserNotInSId(@Param("uid") int uid);

// 获取用户的歌单
    List<MusicServer> findPlaylistByUser(@Param("uid") int uid);
    //所有歌单  一对多(歌单整理功能)
    List<MusicServer> getAllPlayListBySId();

//   根据备注和平台id查歌单 一对一
    List<PlayList> findPlaylistByExplainAndSId(PlayList playList);
    List<PlayList> findPlaylistByExplainAndSId2(@Param("exp") String exp,@Param("sid") Integer sid);


//    根据平台id和歌单id和用户查询用户歌单
    UserPlaylist findplByUserPlaylist(
            @Param("userId") int uid,@Param("serverId") int sid,@Param("playlistId") String plid,@Param("plExplain") String plex);
//    添加用户歌单（自动选择和添加新的平台同一此接口）
    int insertUserPlaylist(UserPlaylist userPlaylist);

//    根据id删除用户歌单
    int removePlaylistById(@Param("id") int id);

//    根据uid和平台id删除用户歌单
    int removePlaylistByUIdAndSid(@Param("uid")int uid,@Param("sid")int sid);
//    根据id查找用户歌单
    UserPlaylist findUserPlaylistById(@Param("id")int id);

//    根据id修改用户歌单
    int updateUserPlaylistById(UserPlaylist userPlaylist);
//    根据id修改用户歌单（仅修改备注）
    int updateUPlExplainById(@Param("plExplain")String explain, @Param("id")int id);
}
